package betandregret;

import java.util.Calendar;

import betandregret.interfaces.IBetAndRegret;
import betandregret.interfaces.IKundenBoundary;
import betandregret.interfaces.IMitarbeiterBoundary;

public class BetAndRegret implements IBetAndRegret {
	
	private String gruppenNummer = "T12-05";
	private KundenBoundary kundenBoundary;
	private MitarbeiterBoundary mitarbeiterBoundary;
	private Calendar datum = Calendar.getInstance();
	private Spielverwaltung spielverwaltung;
	private Wettverwaltung wettverwaltung;

	@Override
	public String getGruppenNummer() {
		return gruppenNummer;
	}

	@Override
	public IKundenBoundary getKundenBoundary() {
		return kundenBoundary;
	}

	@Override
	public IMitarbeiterBoundary getMitarbeiterBoundary() {
		return mitarbeiterBoundary;
	}

	@Override
	public void initialisieren() {
		kundenBoundary = new KundenBoundary();
		mitarbeiterBoundary = new MitarbeiterBoundary();
		
		spielverwaltung = new Spielverwaltung();
		wettverwaltung = new Wettverwaltung();
		spielverwaltung.setWettverwaltung(wettverwaltung);
		
		kundenBoundary.setWettverwaltung(wettverwaltung);
		mitarbeiterBoundary.setSpielverwaltung(spielverwaltung);
		
		this.setDatum(this.datum);
	}

	@Override
	public void shutDown() {
		kundenBoundary = null;
		mitarbeiterBoundary = null;
		System.gc();
	}

	@Override
	public void setDatum(Calendar datum) {
		this.datum = datum;
		
		if(kundenBoundary != null) kundenBoundary.getWettverwaltung().setDatum(this.datum);
		if(mitarbeiterBoundary != null) mitarbeiterBoundary.getSpielverwaltung().setDatum(this.datum);
	}
	
}